package university.dropcourse.service;

import java.util.Set;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.jws.WebService;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import university.dropcourse.conversion.CorsoConv;
import university.dropcourse.dto.CorsoDto;
import university.dropcourse.entity.Corso;
import university.dropcourse.entity.Docente;

/**
 * Session Bean implementation class DocenteBean
 */
@LocalBean
@Stateless
@WebService
public class DocenteManagerBean {
	
	@PersistenceContext
	private EntityManager manager;	
	@EJB
    CorsoConv corsoConv;
	
    public DocenteManagerBean() {
    }
        
    public boolean creaCorso(Integer docenteId, CorsoDto c) throws EntityExistsException{
    
    	Corso corso = corsoConv.fromDto(c);
    	Docente doc = manager.find(Docente.class, docenteId);
    	if(doc!=null){
    		corso.setDocente(doc);
    		manager.persist(corso);
        	manager.flush();
        	
        	return true;
        }       
    	else
    		return false;
    }
    
    public Set<Corso> elencoCorsiInsegnati(Integer docenteId){
    	
    	Docente doc = manager.find(Docente.class, docenteId);
    	if(doc!=null){
    		return doc.getCorsi();
    	}
    	else
    		return null;    	
    }
    
    public void prova(){
    	Docente doc=new Docente();
    	doc.setMatricola("111111");
    	doc.setNome("prova");
    	doc.setCognome("prova");
    	doc.setEmail("prova");
    	doc.setPassword("prova");
    	
    	
    	manager.persist(doc);
    	
    	
    	Corso c=new Corso();
    	c.setCfu(5);
    	c.setCodiceCorso("prova");
    	c.setDocente(manager.find(Docente.class, 1));
    	//docBean.creaCorso(c);
    	manager.persist(c);
    	manager.flush();
    	System.out.println("docente lista corsi: "+manager.find(Docente.class, 1).getCognome());
    	System.out.println("docente lista corsi: "+manager.find(Docente.class, 1).getCorsi());
    }
    
}
